import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import Components from "unplugin-vue-components/vite";
import { VantResolver } from "unplugin-vue-components/resolvers";
import pxtovw from "postcss-px-to-viewport";
import { resolve } from "path";

const loder_pxtovw = pxtovw({
  //这里是设计稿宽度 自己修改
  unitToConvert: "px", // 要转化的单位
  viewportWidth: 375, // UI设计稿的宽度
  unitPrecision: 6, // 转换后的精度，即小数点位数
  propList: ["*"], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
  viewportUnit: "vw", // 指定需要转换成的视窗单位，默认vw
  fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位，默认vw
  selectorBlackList: ["ignore-"], // 指定不转换为视窗单位的类名，
  minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
  mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
  replace: true, // 是否转换后直接更换属性值
  exclude: [], // 设置忽略文件，用正则做目录名匹配
  landscape: false, // 是否处理横屏情况
});
export default ({ mode }) =>
  defineConfig({
    plugins: [
      vue(),
      Components({
        resolvers: [VantResolver()],
      }),
    ],
    build: {
      target: "esnext",
    },
    resolve: {
      alias: {
        //设置别名
        "@": resolve(__dirname, "src"),
      },
    },
    css: {
      postcss: {
        plugins: [loder_pxtovw],
      },
    },
    server: {
      host: "0.0.0.0",
      port: 8088,
    },
  });
